package com.linkage.linkedlife.application

import android.content.Context
import android.content.Intent
import cn.bmob.v3.Bmob
import cn.leancloud.AVOSCloud
import cn.leancloud.push.PushService
import cn.leancloud.push.PushService.startIfRequired
import com.alibaba.android.arouter.launcher.ARouter
import com.just.agentweb.AgentWebCompat
import com.linkage.linkedlife.base.BaseApplication
import com.linkage.linkedlife.service.WebService
import com.linkage.linkedlife.utils.Utils
import com.queue.library.GlobalQueue
import com.squareup.leakcanary.LeakCanary

/**
 * @ClassName: MyApplication
 * @Description: java类作用描述
 * @Author: Clark
 * @Date: 2020/12/17 0017 10:14
 */

public class MyApplication : BaseApplication() {
    override fun onCreate() {
        super.onCreate()
          Utils.init(this)
        if (Utils.isAppDebug()) {
            ARouter.openDebug()
            ARouter.openLog()
        }
        ARouter.init(this)
        Bmob.initialize(this,"a8c9da58f6ecf05754c7ceb779cc4108")
        // 提供 this、App ID、App Key、Server Host 作为参数
        // 注意这里千万不要调用 cn.leancloud.core.AVOSCloud 的 initialize 方法，否则会出现 NetworkOnMainThread 等错误。
        AVOSCloud.initialize(this, "{{TiQITYwfA7ve01kmXUc7SmS7-gzGzoHsz}}", "{{Qu7u2ANoG7jTTStFSNOKSrsC}}", "https://please-replace-with-your-customized.domain.com")
//        AVOSCloud.initializeSecurely(this, "{{TiQITYwfA7ve01kmXUc7SmS7-gzGzoHsz}}", "https://please-replace-with-your-customized.domain.com");
        PushService.startIfRequired(this);


        /**
         * 说明， WebView 初处初始化耗时 250ms 左右。
         * 提前初始化WebView ，好处可以提升页面初始化速度，减少白屏时间，
         * 坏处，拖慢了App 冷启动速度，如果 WebView 配合 VasSonic 使用，
         * 建议不要在此处提前初始化 WebView 。
         */
//        WebView mWebView=new WebView(new MutableContextWrapper(this));

        /**
         * 说明， WebView 初处初始化耗时 250ms 左右。
         * 提前初始化WebView ，好处可以提升页面初始化速度，减少白屏时间，
         * 坏处，拖慢了App 冷启动速度，如果 WebView 配合 VasSonic 使用，
         * 建议不要在此处提前初始化 WebView 。
         */
//        WebView mWebView=new WebView(new MutableContextWrapper(this));
        if (LeakCanary.isInAnalyzerProcess(this)) {
            // This process is dedicated to LeakCanary for heap analysis.
            // You should not init your app in this process.
            return
        }
        LeakCanary.install(this)
        // Normal app init code...

        //implementation 'com.github.Justson:dispatch-queue:v1.0.5'
        // Normal app init code...

        //implementation 'com.github.Justson:dispatch-queue:v1.0.5'
        GlobalQueue.getMainQueue().postRunnableInIdleRunning(Runnable {
            try {
                startService(Intent(this@MyApplication, WebService::class.java))
            } catch (throwable: Throwable) {
            }
        })
    }

    override fun onTerminate() {
        super.onTerminate()
        //释放资源
        ARouter.getInstance().destroy()
    }
   public  var mContext: Context? = null

    override fun attachBaseContext(base: Context?) {
        super.attachBaseContext(base)
        mContext = base
        AgentWebCompat.setDataDirectorySuffix(base)
    }

    companion object {
        lateinit var mContext: Context
    }


}

